home *** CD-ROM | disk | FTP | other *** search
/ Amiga Games Extra 1996 June / Amiga Games Extra 1996 #6.iso / userbox / publicdomain / gnutar / source.lzh / source / open3.h < prev    next >
C/C++ Source or Header  |  1995-09-16  |  3KB  |  68 lines

  1. /* Defines for Sys V style 3-argument open call.
  2.    Copyright (C) 1988 Free Software Foundation
  3.  
  4. This file is part of GNU Tar.
  5.  
  6. GNU Tar is free software; you can redistribute it and/or modify
  7. it under the terms of the GNU General Public License as published by
  8. the Free Software Foundation; either version 2, or (at your option)
  9. any later version.
  10.  
  11. GNU Tar is distributed in the hope that it will be useful,
  12. but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14. GNU General Public License for more details.
  15.  
  16. You should have received a copy of the GNU General Public License
  17. along with GNU Tar; see the file COPYING.  If not, write to
  18. the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
  19.  
  20. /*
  21.  * open3.h -- #defines for the various flags for the Sys V style 3-argument
  22.  * open() call.  On BSD or System 5, the system already has this in an
  23.  * include file.  This file is needed for V7 and MINIX systems for the
  24.  * benefit of open3() in port.c, a routine that emulates the 3-argument
  25.  * call using system calls available on V7/MINIX.
  26.  *
  27.  * This file is needed by PD tar even if we aren't using the
  28.  * emulator, since the #defines for O_WRONLY, etc. are used in
  29.  * a couple of places besides the open() calls, (e.g. in the assignment
  30.  * to openflag in extract.c).  We just #include this rather than
  31.  * #ifdef them out.
  32.  *
  33.  * Written 6/10/87 by rmtodd@uokmax (Richard Todd).
  34.  *
  35.  * The names have been changed by John Gilmore, 31 July 1987, since
  36.  * Richard called it "bsdopen", and really this change was introduced in
  37.  * AT&T Unix systems before BSD picked it up.
  38.  */
  39.  
  40. /* Only one of the next three should be specified */
  41. #define O_RDONLY     0    /* only allow read */
  42. #define    O_WRONLY     1    /* only allow write */
  43. #define    O_RDWR         2    /* both are allowed */
  44.  
  45. /* The rest of these can be OR-ed in to the above. */
  46. /*
  47.  * O_NDELAY isn't implemented by the emulator.  It's only useful (to tar) on
  48.  * systems that have named pipes anyway; it prevents tar's hanging by
  49.  * opening a named pipe.  We #ifndef it because some systems already have
  50.  * it defined.
  51.  */
  52. #ifndef O_NDELAY
  53. #define O_NDELAY     4    /* don't block on opening devices that would
  54.                 * block on open -- ignored by emulator. */
  55. #endif
  56. #define O_CREAT         8    /* create file if needed */
  57. #define O_EXCL        16    /* file cannot already exist */
  58. #define O_TRUNC        32    /* truncate file on open */
  59. #define O_APPEND    64    /* always write at end of file -- ignored by emul */
  60.  
  61. #ifdef EMUL_OPEN3
  62. /*
  63.  * make emulation transparent to rest of file -- redirect all open() calls
  64.  * to our routine
  65.  */
  66. #define open    open3
  67. #endif
  68.